  body { background: #fafbfc; }
        .table > thead > tr > th, .table > tbody > tr > td {
            vertical-align: middle;
            text-align: center;
            border-left: none;
            border-right: none;
        }
        .tree-toggle {
            cursor: pointer;
            user-select: none;
            display: inline-block;
            width: 16px;
            text-align: center;
        }
        .tree-indent {
            display: inline-block;
            width: 20px;
        }
        .icon-cell {
            font-size: 18px;
        }
        .action-link {
            color: #409EFF;
            cursor: pointer;
        }
        .action-link:hover {
            text-decoration: underline;
        }
        .table-striped > tbody > tr:nth-of-type(odd) {
            background-color: #f9f9f9;
        }
        .table {
            border: none;
            table-layout: fixed;
            width: 100%;
        }
        .table > thead > tr > th {
            border-bottom: 1px solid #ddd;
            background-color: #f5f5f5;
        }
        .table > tbody > tr > td {
            border-bottom: 1px solid #ddd;
            word-break: break-all;
            overflow: hidden;
            white-space: normal;
            text-overflow: ellipsis;
        }
        .arrow-right {
            display: inline-block;
            width: 0;
            height: 0;
            border-top: 4px solid transparent;
            border-bottom: 4px solid transparent;
            border-left: 6px solid #666;
            transition: transform 0.2s;
        }
        .arrow-down {
            transform: rotate(90deg);
        }
        .bi-icon-select {
            font-size: 1.5em;
            margin: 0.25em;
            cursor: pointer;
            border: 2px solid transparent;
            border-radius: 4px;
            padding: 2px 4px;
        }
        .bi-icon-select.selected {
            border-color: #409EFF;
            background: #e6f7ff;
        }
        .modal-header {
            cursor: move;
            user-select: none;
            padding: 8px 15px !important;
            min-height: 36px;
        }
        .modal-footer {
            padding: 8px 15px !important;
        }
        .modal-dialog {
            width: 800px;
            max-width: 98vw;
            min-width: 600px;
            max-height: 90vh;
            margin: 40px auto 0 auto;
            left: 0;
            right: 0;
        }
        .modal-content {
            max-height: 90vh;
            overflow: visible;
            transform: scale(0.9);
            transform-origin: top left;
        }
        .modal-body {
            max-height: 65vh;
            overflow-y: auto;
        }
        /* 图标选择器浮层 */
        .icon-picker-pop {
            position: absolute;
            z-index: 1051;
            background: #fff;
            border: 1px solid #eee;
            border-radius: 4px;
            box-shadow: 0 2px 8px rgba(0,0,0,0.12);
            padding: 4px 2px;
            max-width: 350px;
            max-height: 120px;
            overflow: auto;
            left: 0;
            top: 100%;
        }
        th, td {
            min-width: 60px;
        }